@file:Suppress("unused")

package com.virtualightning.mvvm.tools.shapes

/**
 *  Anchor : Create by CimZzz
 *  Time : 2021/12/21 14:55
 *  范围
 */
class VLRange{
	/**
	 * 最小范围
	 */
	private var min: Float = 0f

	/**
	 * 最大范围
	 */
	private var max: Float = 0f

	/**
	 * 指定最小范围和最大范围
	 * @param min Float 最小范围
	 * @param max Float 最大范围
	 */
	fun set(min: Float, max: Float) {
		this.min = min
		this.max = max
	}

	/**
	 * 返回最小范围
	 * @return Float 最小范围
	 */
	fun getMin(): Float {
		return min
	}

	/**
	 * 返回最大范围
	 * @return Float 最大范围
	 */
	fun getMax(): Float {
		return max
	}

	/**
	 * 根据进度取中间值
	 * @param progress Float 进度
	 * @return Float 中间值
	 */
	fun getProgressValue(progress: Float): Float {
		return when {
			progress <= 0 -> min
			progress >= 1f -> max
			else -> min + (max - min) * progress
		}
	}

	/**
	 * 判断当前范围是否不合法
	 * @return Boolean
	 */
	fun isInvalid(): Boolean {
		return min == 0f && max == 0f
	}
}